package com.hustmed.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excels;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 实验对象 experiment
 *
 */
public class Experiment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 实验id */
    private String id;

    /** 材料id */
//    @Excel(name = "材料id")
    private String materialId;

    /** 实验编号 */
    @Excel(name = "实验编号")
    private String experimentNo;


    @Excels({
            @Excel(name = "材料名称", targetAttr = "matName", type = Excel.Type.EXPORT),
    })
    private Material material;

    private String matName;

    /** 实验名称 */
    @Excel(name = "实验名称")
    private String name;

    /** 工艺名称 */
    @Excel(name = "工艺名称", dictType = "process_type" )
    private String process;

    /** 实验时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date experimentTime;

    /** 实验人员（多人） */
    @Excel(name = "实验人员")
    private String experimentPersons;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    /** 状态（0未完成 1完成） */
    @Excel(name = "状态", readConverterExp = "0=未完成,1=完成")
    private Long status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间")
    private Date createTime;

    @Excel(name = "更新人",dictType="user")
    private String updateBy;
    /** 删除标志 */
    private String delFlag;

    private List<SysUser> sysUsers;

    private List<ProcessParams> processParamsList;

    private String cjson;

    private String vjsonq;

    private String processParamsId;
    private String pcjson;
    private String pvjson;
    private String sampleId;
    private String scjson;
    private String svjson;

    private String sampleNo;

    private String etype;


    private String matNo;

    private String sampleName;

    private String SampleRemark;

    private String processParamsNo;

    // process Map
    private HashMap<String, ProcessParams> processMap;


    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setMaterialId(String materialId) 
    {
        this.materialId = materialId;
    }

    public String getMaterialId() 
    {
        return materialId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setProcess(String process) 
    {
        this.process = process;
    }

    public String getProcess() 
    {
        return process;
    }
    public void setExperimentNo(String experimentNo) 
    {
        this.experimentNo = experimentNo;
    }

    public String getExperimentNo() 
    {
        return experimentNo;
    }
    public void setExperimentPersons(String experimentPersons) 
    {
        this.experimentPersons = experimentPersons;
    }

    public String getExperimentPersons() 
    {
        return experimentPersons;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public Date getExperimentTime() {
        return experimentTime;
    }

    public void setExperimentTime(Date experimentTime) {
        this.experimentTime = experimentTime;
    }

    public Material getMaterial() {
        return material;
    }

    public void setMaterial(Material material) {
        this.material = material;
    }

    public List<SysUser> getSysUsers() {
        return sysUsers;
    }

    public void setSysUsers(List<SysUser> sysUsers) {
        this.sysUsers = sysUsers;
    }

    public List<ProcessParams> getProcessParamsList() {
        return processParamsList;
    }

    public void setProcessParamsList(List<ProcessParams> processParamsList) {
        this.processParamsList = processParamsList;
    }

    public String getCjson() {
        return cjson;
    }

    public void setCjson(String cjson) {
        this.cjson = cjson;
    }

    public String getVjsonq() {
        return vjsonq;
    }

    public void setVjsonq(String vjsonq) {
        this.vjsonq = vjsonq;
    }

    public String getProcessParamsId() {
        return processParamsId;
    }

    public void setProcessParamsId(String processParamsId) {
        this.processParamsId = processParamsId;
    }

    public String getPcjson() {
        return pcjson;
    }

    public void setPcjson(String pcjson) {
        this.pcjson = pcjson;
    }

    public String getPvjson() {
        return pvjson;
    }

    public void setPvjson(String pvjson) {
        this.pvjson = pvjson;
    }

    public String getSampleId() {
        return sampleId;
    }

    public void setSampleId(String sampleId) {
        this.sampleId = sampleId;
    }

    public String getScjson() {
        return scjson;
    }

    public void setScjson(String scjson) {
        this.scjson = scjson;
    }

    public String getSvjson() {
        return svjson;
    }

    public void setSvjson(String svjson) {
        this.svjson = svjson;
    }

    public String getSampleNo() {
        return sampleNo;
    }

    public void setSampleNo(String sampleNo) {
        this.sampleNo = sampleNo;
    }

    public String getEtype() {
        return etype;
    }

    public void setEtype(String etype) {
        this.etype = etype;
    }

    public String getMatName() {
        return matName;
    }

    public void setMatName(String matName) {
        this.matName = matName;
    }

    public String getMatNo() {
        return matNo;
    }

    public void setMatNo(String matNo) {
        this.matNo = matNo;
    }

    public String getProcessParamsNo() {
        return processParamsNo;
    }

    public void setProcessParamsNo(String processParamsNo) {
        this.processParamsNo = processParamsNo;
    }

    public String getSampleName() {
        return sampleName;
    }

    public void setSampleName(String sampleName) {
        this.sampleName = sampleName;
    }

    public String getSampleRemark() {
        return SampleRemark;
    }

    public void setSampleRemark(String sampleRemark) {
        SampleRemark = sampleRemark;
    }

    public HashMap<String, ProcessParams> getProcessMap() {
        return processMap;
    }

    public void setProcessMap(HashMap<String, ProcessParams> processMap) {
        this.processMap = processMap;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String getUpdateBy() {
        return updateBy;
    }

    @Override
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("materialId", getMaterialId())
            .append("name", getName())
            .append("process", getProcess())
            .append("experimentNo", getExperimentNo())
            .append("experimentPersons", getExperimentPersons())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
